package com.hs.core.service;

import java.util.*;

import com.hs.core.model.BaseBean;

 
public interface IService {

	/**
	 * 
	 * 功能:保存一个实例化对象 实现使用了：saveOrUpdate
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param baseBean
	 */
	public void saveObject(BaseBean baseBean);

	/**
	 * 
	 * 功能:更新一个实例化对象 实现使用了：update
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param baseBean
	 */
	public void update(BaseBean baseBean) ;
	
	
	/**
	 * 
	 * 功能:添加一个实例化对象 实现使用了：save
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param baseBean
	 */
	public void save(BaseBean baseBean) ;

	/**
	 * 
	 * 功能:删除一个映射对象
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param baseBean
	 */
	public void deleteObject(BaseBean baseBean);

	/**
	 * 
	 * 功能:删除一组映射对象
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param list
	 */
	public void deleteList(Collection list);

	/**
	 * 
	 * 功能:根据类的对象class和id,返回id对应的对象实例
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param entityClass   如:BugRecord.class
	 * @param id 主键
	 * @return
	 */
	public Object findByID(Class entityClass, Long id);
	
	
	/**
	 * 
	 * 功能:根据类的对象class和id,返回id对应的对象实例
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param entityClass   如:BugRecord.class
	 * @param id 主键
	 * @return
	 */
	public Object findByID(Class entityClass, String id);
	
	/**
	 * 功能:返回根据类名和该类的实例example中有值的属性作条件查询出的唯一记录对象。
	 * 必须保证本次查询返回的记录在数据库表中是唯一的，如果存在多条记录将抛出异常。
	 * <br>作者: Zhangzhiya<br>
	 * 创建日期:Jul 31, 2007
	 * @param classObj
	 * @param exampleObj
	 * @return
	 */
	public Object findByExampleUnique(Class classObj,Object exampleObj);
	
	/**
	 * 功能:返回根据类名和该类的实例example中有值的属性作条件查询出的记录列表。
	 * <br>作者: shiliang<br>
	 * 创建日期:Jul 31, 2007
	 * @param classObj
	 * @param exampleObj
	 * @return
	 */
	public List findByExample(Class classObj,Object exampleObj);
	
	/**
	 * 功能:公用的查找list的方法.实现方式为调用HibernateTemplate的find()方法去执行
	 * <br>作者: shiliang<br>
	 * 创建日期:2007-9-12
	 * @param hql
	 * @param param
	 * @return
	 */
	public List findList(String hql,Object param);
	
	/**
	 * 通过任意一个类属性获得记录
	 * 
	 * @param String
	 *            boname,类名
	 * @param String
	 *            attributename,类属性的名字
	 * @param Object
	 *            attributevalue,类属性的值
	 */
	public List findByAny(String boname, String attributename,
			Object attributevalue, String order, String group);
	
	/**
	 * 
	 * 功能:保存一组映射对象
	 * 作者: shiliang
	 * 创建日期:2006-6-13
	 * @param list
	 */
	public void saveOrUpdateAll(Collection list);
	
	/**
	 * 
	 * 功能: 获得列表
	 * 作者: shiliang
	 * 创建日期:2006-12-14
	 * @param hql
	 * @return
	 */
	public List findList(String hql);
	

}

